//package aiP.A2;
//
//import aiP.A2.GUI.GUI_Main;
//import FertigungKomponente.DataAccessLayer.AiBauteil_Entity;
//import BuchhaltungKomponente.DataAccessLayer.AiKunde_Entity;
//import org.hibernate.HibernateException;
//import org.hibernate.SessionFactory;
//import org.hibernate.Session;
//import org.hibernate.Query;
//import org.hibernate.cfg.Configuration;
//import org.hibernate.metadata.ClassMetadata;
//import org.hibernate.service.ServiceRegistry;
//import org.hibernate.service.ServiceRegistryBuilder;
//
//import java.util.HashMap;
//import java.util.Map;
//
///**
// * Created with IntelliJ IDEA.
// * User: mizus
// * Date: 29.04.14
// * Time: 13:44
// * To change this template use File | Settings | File Templates.
// */
//public class Main {
//
//    private static final SessionFactory ourSessionFactory;
//    private static final ServiceRegistry serviceRegistry;
//
//    private Map<String, AiKunde_Entity> map_Kunde = new HashMap<String, AiKunde_Entity>();
//    private Map<Integer, AiKunde_Entity> map_Kunde_byID = new HashMap<Integer, AiKunde_Entity>();
//    private Map<String, AiBauteil_Entity> map_Bauteil = new HashMap<String, AiBauteil_Entity>();
//
//    public Main(){
//        fillMaps();
//    }
//
//    static {
//        try {
//            Configuration configuration = new Configuration();
//            configuration.configure();
//
//            serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();
//            ourSessionFactory = configuration.buildSessionFactory(serviceRegistry);
//        } catch (Throwable ex) {
//            throw new ExceptionInInitializerError(ex);
//        }
//    }
//
//    public static Session getSession() throws HibernateException {
//        return ourSessionFactory.openSession();
//    }
//
//
//    private void fillMaps(){
//        final Session session = getSession();
//        try {
//            System.out.println("querying all the managed entities...");
//            final Map metadataMap = session.getSessionFactory().getAllClassMetadata();
//            for (Object key : metadataMap.keySet()) {
//                final ClassMetadata classMetadata = (ClassMetadata) metadataMap.get(key);
//                final String entityName = classMetadata.getEntityName();
//                final Query query = session.createQuery("from " + entityName);
//                System.out.println("executing: " + query.getQueryString());
//                for (Object o : query.list()) {
//                    if(o instanceof AiBauteil_Entity){
//                        AiBauteil_Entity tmp_bauteil = (AiBauteil_Entity)o;
//                        map_Bauteil.put(tmp_bauteil.getName(), tmp_bauteil);
//                    }
//                    if(o instanceof AiKunde_Entity){
//                        AiKunde_Entity tmp_kunde = (AiKunde_Entity)o;
//                        map_Kunde.put(tmp_kunde.getName(), tmp_kunde);
//                                        int id = Integer.valueOf(""+tmp_kunde.getKundeId()).intValue();
//                        map_Kunde_byID.put(id, tmp_kunde);
//                    }
//                    System.out.println("  " + o);
//                }
//            }
//        } finally {
//            session.close();
//        }
//    }
//
//    public Map<String, AiBauteil_Entity> getMap_Bauteil(){
//        return map_Bauteil;
//    }
//
//    public Map<String, AiKunde_Entity> getMap_Kunde(){
//        return map_Kunde;
//    }
//
//    public Map<Integer, AiKunde_Entity> getMap_Kunde_byID(){
//        return map_Kunde_byID;
//    }
//
//
//    public static void main(final String[] args) throws Exception {
//        Main main = new Main();
//        new GUI_Main(main.getMap_Bauteil(), main.getMap_Kunde(), main.map_Kunde_byID);
//    }
//
//}
